/**
 * 发送ajax异步请求  get请求
 * @param {String}  url  接口地址
 * @param {String}  params  接口参数 格式：参数名=值&...&参数名=值
 * @callback callback  对后端返回的函数进行处理
 * @callback headerFn  请求头
 */

function get(url,params,callback,headerFn=null){
    //创建xhr对象
    const xhr = new XMLHttpRequest
    //监控请求状态
    xhr.onreadystatechange = ()=>{
        //判断后端是否返回数据
        if(xhr.readyState === 4){
            //判断后端返回数据的状态
            if(xhr.status ===200){//请求成功
                //获取后端返回的数据
                let res = JSON.parse(xhr.responseText)
                //处理数据
                callback(res)
            }
            else{//请求失败
                console.log('错误原因：',xhr.status)
            }
        }
    }
    //请求方式，请求地址
    xhr.open('get',`${url}?${params}`)
    //如果需要token请求头等，则调用
    if(headerFn) headerFn(xhr)
    //发送请求
    xhr.send(null)
}



/**
 * 发送ajax异步请求  post请求
 * @param {String}  url  接口地址
 * @param {String}  params  接口参数 格式：参数名=值&...&参数名=值
 * @callback callback  对后端返回的函数进行处理
 * @callback headerFn  请求头
 */

 function post(url,params, callback, headerFn = null){
    //创建xhr对象
    const xhr = new XMLHttpRequest
    //监控请求状态
    xhr.onreadystatechange = ()=>{
        //判断后端是否返回数据
        if(xhr.readyState === 4){
            //判断后端返回数据的状态
            if(xhr.status ===200){//请求成功
                //获取后端返回的数据
                let res = JSON.parse(xhr.responseText)
                //处理数据
                callback(res)
            }
            else{//请求失败
                console.log('错误原因：',xhr.status)
            }
        }
    }
    //请求方式，请求地址
    xhr.open('post',url)
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
    //如果需要token请求头等，则调用
    if(headerFn) headerFn(xhr)
    //发送请求
    xhr.send(params)
}